package com.treasure.mall.biz.service.core.live;

import com.treasure.mall.biz.base.SearchableCrudService;
import com.treasure.mall.biz.entity.live.LiveRoomUserPO;

/**
 * 
 * <p>
 * +---------------------------------------------------------
 * * @package: com.treasure.mall.biz.service.core.live
 * * @author: guomw (guomwchen@foxmail.com)
 * * @date: 2020/9/16 6:54 下午
 * * @since: V1.0.0
 * +---------------------------------------------------------
 * 注意：本内容仅限于内部传阅，禁止外泄以及用于其他的商业目的
 * 
 */
public interface LiveRoomUserService extends SearchableCrudService<LiveRoomUserPO, Long> {


    /**
     * 检查是否禁言
     *
     * @param userId    用户ID
     * @param sessionId 直播间场次ID
     * @return
     */
    boolean checkForbid(Long userId, String sessionId);

    /**
     * 设置禁言
     *
     * @param userId    用户ID
     * @param sessionId 直播间场次ID
     * @param forbid    是否禁言
     * @return
     */
    boolean setForbid(Long userId, String sessionId, boolean forbid);

    /**
     * 设置禁言
     *
     * @param id     直播间用户主键ID
     * @param forbid 是否禁言
     * @return
     */
    boolean setForbid(Long id, boolean forbid);

    /**
     * 设置用户下线状态
     *
     * @param userId    用户ID
     * @param sessionId 直播间场次ID
     */
    void modifyUserOffline(Long userId, String sessionId);

    /**
     * 设置用户上线，不计观看次数
     *
     * @param userId
     * @param sessionId
     */
    void modifyUserOnline(Long userId, String sessionId);

    /**
     * 修改用户在线时长
     *
     * @param userId
     * @param sessionId
     * @param seconds
     */
    void modifyUserOnlineDuration(Long userId, String sessionId, Long seconds);
}
